package com.shop.bookstore.controller;
import com.shop.bookstore.entity.User;
import com.shop.bookstore.service.UserService;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpSession;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;

@Controller
public class UserController {

    @Autowired
    UserService userService;
    @Autowired
    HttpServletRequest request;

    //    处理前端的用户请求，或者给前端传递数据
    @RequestMapping("/")
    public String main(){
        return "login";
    }

    //    进入管理系统主窗体
//    静态资源的引入： css,js,img
//
    @RequestMapping("/main")
    public String main(Model model){
        Object username= request.getSession().getAttribute("username");
        if(username==null){
            return "redirect:/";
        }else {
            model.addAttribute("username", username);
            return "main";
        }
    }
    //    进入用户注册页面
    @RequestMapping("/register")
    public String reg(){
        return "register";
    }
    //    处理一下用户的注册
    @RequestMapping("/registerProcess")
    public String registerProcess(@RequestParam String username,@RequestParam String userpwd){
//        查看有没有接收用户前端的输入
        if(username.isEmpty()){
            return "redirect:/register";
        }else{
//        将数据组装成user实体对象
            User user = new User();
            user.setUsername(username);
            user.setPassword(userpwd);
            user.setRights("0");
            user.setStatus("0");
            System.out.println(user);
//        调用service的add方法将对象增加到数据库
            if(userService.add(user)==1){
                return "redirect:/login";
            }else {
                return "redirect:/register";
            }
//        如果成功，就进入login登录页面，否则，就提示错误
        }
    }
//登录页提交数据后哪个服务来处理登录

    @RequestMapping("/login")
    public String loginProcess(HttpServletRequest request,@RequestParam String username,@RequestParam String userpwd){
//        首先看有没有接受到数据
        System.out.println(username);
        System.out.println(userpwd);
//        如果传递过来的数据和用户名和密码都正确，就直接进入系统管理的主页main.html
        User user = new User();
        user.setUsername(username);
//        从数据库里查询返回的一个对象
        User userdb = userService.findOne(user);
//        如果用户名和密码有错误，然后就去错误提示界面
        if (userdb.getUsername().isEmpty()) {
            return "LoginError";
        } else {
            if (userdb.getPassword().equals(userpwd)) {
//                    使用绘画技术存储当前登录的用户，session
                HttpSession session = request.getSession();
                session.setAttribute("username",username);
                return "redirect:/main";
            } else {
                return "LoginError";
            }
        }
    }
//    登录用户退出
    @RequestMapping("/logout")
    public String logout( @RequestParam String username, @RequestParam String userpwd){
//        直接清除session里的username对应的值
        request.getSession().removeAttribute("username");
//        返回登录页面
        return "redirecy:/";


    }
}